package com.abc.easyclaim;

import java.util.ArrayList;
import java.util.Date;

import com.abc.tool.StringTool;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;

public class PhotoComment extends Activity{

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		this.setContentView(R.layout.savephoto);
		
		final Bundle bundle=this.getIntent().getExtras();         //获取数据对象
		final byte[] data=bundle.getByteArray("data");      //获取图片数据
		final ArrayList<String> photoNameStrings=bundle.getStringArrayList("photoNameStrings"); //获取所有照片名称集合
		final String photoCommentString=bundle.getString("recomment");      //获取传入的评论文本
		final int currentPhoto=bundle.getInt("currentPhoto");
		System.out.println("currentPhoto="+currentPhoto);
		final Boolean isreedit=bundle.getBoolean("isreedit");      //获取是否是重新编辑的标记
		final String photoDate=bundle.getString("photoDate");        //拍照日期
		//根据拍照所得的数据创建位图
		final Bitmap bm=BitmapFactory.decodeByteArray(data, 0, data.length);
		//获取组件
		ImageView show=(ImageView)findViewById(R.id.savephoto_show);
		final EditText photoComment=(EditText)findViewById(R.id.comment);
		final EditText photoName=(EditText)findViewById(R.id.photo_name);
		//如果是重新编辑
		if (isreedit) {
			System.out.println("photoNameStrings.get(currentPhoto)="+photoNameStrings.get(currentPhoto));
			//photoComment.setText(bundle.getString("recomment"));  //显示传入的评论文本
			photoName.setText(photoNameStrings.get(currentPhoto).split("\\.jpg")[0]);        //显示传入的照片名称
		}
		Button okButton=(Button)findViewById(R.id.Ok);
		Button cancelButton=(Button)findViewById(R.id.Cancle);
		//显示刚刚拍得的照片
		show.setImageBitmap(bm);
		//为确定按钮添加监听器
		okButton.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				//取出添加的评论文本
				String commentString=photoComment.getText().toString().trim();
				//取出命名文本
				String photoNameString=photoName.getText().toString().trim();
				//检查是否对照片命名了
				if (photoNameString.equals("")) {
					Toast.makeText(PhotoComment.this, R.string.toast_noname, Toast.LENGTH_SHORT).show();
				}
				else {
					//检查是否有重复命名
					boolean isexit=false;       //照片文件名是否已存在的标识
					ArrayList<String> photoNmaes=new ArrayList<String>();  //用来存放该案例所有照片的去后缀名
					for (int i = 0; i < photoNameStrings.size(); i++) {
						photoNmaes.add(i, photoNameStrings.get(i).split("\\.jpg")[0]);
					}
					for (int i = 0; i < photoNmaes.size(); i++) {
						if (photoNameString.equals(photoNmaes.get(i))) {
							//如果是重新编辑且为原来的名称，则不为命名重复
							if (isreedit) {
								if (photoNameString.equals(photoNameStrings.get(currentPhoto))) {
									break;
								}						
							}
							//如果不是重新编辑，是重新拍照，也可以不改名称
							else if (!isreedit && currentPhoto < photoNameStrings.size()) {
								if (photoNameString.equals(photoNameStrings.get(currentPhoto))) {
									break;
								}	
							}
							else {
								isexit=true;               //文件名存在
								break;
							}					
						}
					}
					if (isexit) {
						Toast.makeText(PhotoComment.this,R.string.renametoast,Toast.LENGTH_SHORT).show();
					}
					//返回照片等信息到启动该Activity的Activity
					else {
						getIntent().putExtra("pic", data);					
						//返回照片名称
						getIntent().putExtra("name", photoNameString);
						//返回拍照日期
						getIntent().putExtra("photoDate", photoDate);
						//返回当前页面
						System.out.println("currentPhoto="+currentPhoto);
						getIntent().putExtra("currentPhoto", currentPhoto);
						Date commentDate=new Date(System.currentTimeMillis());//获取当前时间 
						if (isreedit) {
							//返回评论内容
							if (!commentString.equals("") && photoCommentString!=null) {    //添加评论与原评论都不为空
								getIntent().putExtra("comment", photoCommentString+"\n\n"+commentString+"\n"+StringTool.date2String(commentDate, "yyyy-MM-dd HH:mm:ss"));
							}	
							else if (!commentString.equals("") && photoCommentString==null) {  //添加评论不为空，原评论为空
								getIntent().putExtra("comment", commentString+"\n"+StringTool.date2String(commentDate, "yyyy-MM-dd HH:mm:ss"));
							}
							else {     //添加评论为空则返回原来的评论
								getIntent().putExtra("comment", photoCommentString);
							}
							getIntent().putExtra("isreedit", true);
							setResult(20, getIntent());        //如果是重新编辑，数据返回到Camera界面
						}
						else {
							//返回评论内容
							if (!commentString.equals("")) {
								getIntent().putExtra("comment", commentString+"\n"+StringTool.date2String(commentDate, "yyyy-MM-dd HH:mm:ss"));
							}		
							getIntent().putExtra("isreedit", false);						
							setResult(10, getIntent());        //如果不是重新编辑，数据返回到CameraPreview界面
						}			
						finish();
					}		
				}
			}
		});	
		cancelButton.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				finish();
			}
		});
	}

	
}
